package cn.yunhe.dao;


import cn.yunhe.entity.Exam;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Repository("examDao")
public interface ExamDao {
    /***
     * 获取所有的考试模拟标题展示
     * @return
     */
    List<Exam> getExamList();

    /***
     * 获取考试的试卷标题展示
     * @return
     */
    List<Exam>getExamination();


    /***
     * 获取所有可申请的考试
     * @return
     */
    List<Exam>getApplyTest(int userId);

    /**
     * 审核某个考试
     * @return
     */
    int updExamAudit(Exam exam);

    /**
     * 申请考试,向中间表插一条数据
     * @param map
     * @return
     */
    int addApply(Map map);


    /***
     * 获取所有的考试申请
     * @return
     */
    List<Exam> getExamListToApply(int userId);

    /**
     * 获取当前用户的考试情况
     * @return
     */
    List<Map<String, Object>> getCurrUserExam(int userId);

    /**
     * 获取所有可考试的模拟考试
     * @return
     */
    List<Exam> getAllSimulate();
    /**
     * 修改失效的考试状态
     * @return
     */
    int updAllExamAudit(int id);

    /**
     * 获取要修改的中间表id
     * @return
     */
    List<Integer> getAllUser2ExamReadyUpd(Date date);

    /**
     * 修改失效考试中间表状态
     * @param id
     * @return
     */
    int updAllUser2ExamAudit(int id);
    /**
     * 获取所有考试
     * @param exam
     * @return
     */
    List<Exam> getAllExam(Exam exam);

    /**
     * 根据id获取考试
     * @param id
     * @return
     */
    Exam getExamById(int id);

    /**
     * 修改学员考试结束后 中间表的状态
     * @param map
     * @return
     */
    int updUser2Exam(Map map);
}